.\"
.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for
.\" permission to reproduce portions of its copyrighted documentation.
.\" Original documentation from The Open Group can be obtained online at
.\" http://www.opengroup.org/bookstore/.
.\"
.\" The Institute of Electrical and Electronics Engineers and The Open
.\" Group, have given us permission to reprint portions of their
.\" documentation.
.\"
.\" In the following statement, the phrase ``this text'' refers to portions
.\" of the system documentation.
.\"
.\" Portions of this text are reprinted and reproduced in electronic form
.\" in the SunOS Reference Manual, from IEEE Std 1003.1, 2004 Edition,
.\" Standard for Information Technology -- Portable Operating System
.\" Interface (POSIX), The Open Group Base Specifications Issue 6,
.\" Copyright (C) 2001-2004 by the Institute of Electrical and Electronics
.\" Engineers, Inc and The Open Group.  In the event of any discrepancy
.\" between these versions and the original IEEE and The Open Group
.\" Standard, the original IEEE and The Open Group Standard is the referee
.\" document.  The original Standard can be obtained online at
.\" http://www.opengroup.org/unix/online.html.
.\"
.\" This notice shall appear on any product containing this material.
.\"
.\" The contents of this file are subject to the terms of the
.\" Common Development and Distribution License (the "License").
.\" You may not use this file except in compliance with the License.
.\"
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
.\" or http://www.opensolaris.org/os/licensing.
.\" See the License for the specific language governing permissions
.\" and limitations under the License.
.\"
.\" When distributing Covered Code, include this CDDL HEADER in each
.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
.\" If applicable, add the following below this CDDL HEADER, with the
.\" fields enclosed by brackets "[]" replaced with your own identifying
.\" information: Portions Copyright [yyyy] [name of copyright owner]
.\"
.\"
.\" Copyright 1989 AT&T
.\" Copyright (c) 1992, X/Open Company Limited All Rights Reserved Portions
.\" Portions Copyright (c) 1982-2007 AT&T Knowledge Ventures
.\" Portions Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved
.\" Portions Copyright (c) 2013, Joyent, Inc. All Rights Reserved
.\"
.TH HEAD 1 "Sep 12, 2020"
.SH NAME
head \- display first few lines of files
.SH SYNOPSIS
.SS "/usr/bin/head"
.nf
\fB/usr/bin/head\fR [\fB-q\fR] [\fB-v\fR] [\fB-\fR\fInumber\fR ] [ \fB-n\fR \fInumber\fR ] [ \fB-c\fR \fInumber\fR] [\fIfilename\fR]...
.fi

.SS "ksh93"
.nf
\fBhead\fR [\fB-qv\fR] [\fB-n\fR \fIlines\fR] [\fB-c\fR \fIchars\fR] [\fB-s\fR \fIskip\fR] [\fIfilename\fR]...
.fi

.SH DESCRIPTION
.SS "/usr/bin/head"
The \fBhead\fR utility copies the first \fInumber\fR of lines of each
\fIfilename\fR to the standard output. If no \fIfilename\fR is given,
\fBhead\fR copies lines from the standard input. The default value of
\fInumber\fR is \fB10\fR lines. If \fB-c\fR is specified, \fBhead\fR
copies the first \fInumber\fR of bytes of each filename.
.sp
.LP
When more than one file is specified, the start of each file looks like:
.sp
.in +2
.nf
\fB==>\fR \fIfilename\fR \fB<==\fR
.fi
.in -2

.sp
.LP
Thus, a common way to display a set of short files, identifying each one, is:
.sp
.in +2
.nf
example% \fBhead -9999 filename1 filename2 ...\fR
.fi
.in -2
.sp

.SS "ksh93"
The \fBhead\fR built-in in \fBksh93\fR is associated with the \fB/bin\fR and
\fB/usr/bin\fR paths. It is invoked when \fBhead\fR is executed without a
pathname prefix and the pathname search finds a \fB/bin/head\fR or
\fB/usr/bin/head\fR executable.
.sp
.LP
\fBhead\fR copies one or more input files to standard output, stopping at a
designated point for each file or to the end of the file whichever comes first.
Copying ends at the point indicated by the options. By default, a header of the
form \fB==> filename <==\fR is output before all but the first file but this
can be changed with the \fB-q\fR and \fB-v\fR options. If no file is given, or
if the file is \fB-\fR, \fBhead\fR copies from standard input starting at the
current location.
.sp
.LP
The option argument for \fB-c\fR and \fB-s\fR can optionally be followed by one
of the following characters to specify a different unit other than a single
byte:
.sp
.ne 2
.na
\fB\fBb\fR\fR
.ad
.RS 5n
512 bytes
.RE

.sp
.ne 2
.na
\fB\fBk\fR\fR
.ad
.RS 5n
1-kilobyte
.RE

.sp
.ne 2
.na
\fB\fBm\fR\fR
.ad
.RS 5n
1-megabyte
.RE

.sp
.LP
For backwards compatibility, \fB-number\fR is equivalent to \fB-n\fR number.
.SH OPTIONS
.SS "/usr/bin/head"
The following options are supported by \fB/usr/bin/head\fR:
.sp
.ne 2
.na
\fB\fB-n\fR \fInumber\fR\fR
.ad
.RS 13n
The first \fInumber\fR lines of each input file is copied to standard output.
The \fInumber\fR option-argument must be a positive decimal integer.
.RE

.sp
.ne 2
.na
\fB\fB-c\fR \fInumber\fR\fR
.ad
.RS 13n
The first \fInumber\fR bytes of each input file is copied to standard output.
The \fInumber\fR option-argument must be a positive decimal integer. Note,
output may end in the middle of a character if a file contains multi-byte
characters.
.RE

.sp
.ne 2
.na
\fB\fB-\fR\fInumber\fR\fR
.ad
.RS 13n
The \fInumber\fR argument is a positive decimal integer with the same effect as
the \fB-n\fR \fInumber\fR option.
.RE

.sp
.ne 2
.na
\fB-q\fR
.ad
.RS 13n
\fBhead\fR will not print a header in between each specified file.
.RE

.sp
.ne 2
.na
\fB-v\fR
.ad
.RS 13n
\fBhead\fR will always print a header before each file, even if only one
file is specified.
.RE

.sp
.LP
If no options are specified, \fBhead\fR acts as if \fB-n\fR \fB10\fR had been
specified.
.SS "ksh93"
The following options are supported by the head built-in command in
\fBksh93\fR:
.sp
.ne 2
.na
\fB\fB-n\fR\fR
.ad
.br
.na
\fB\fB--lines=\fR\fIlines\fR\fR
.ad
.RS 18n
Copy lines from each file. The default value is \fB10\fR.
.RE

.sp
.ne 2
.na
\fB\fB-c\fR\fR
.ad
.br
.na
\fB\fB--bytes=\fR\fIchars\fR\fR
.ad
.RS 18n
Copy \fIchars\fR bytes from each file.
.RE

.sp
.ne 2
.na
\fB\fB-q\fR\fR
.ad
.br
.na
\fB\fB--quiet|silent\fR\fR
.ad
.RS 18n
Never output filename headers.
.RE

.sp
.ne 2
.na
\fB\fB-s\fR\fR
.ad
.br
.na
\fB\fB--skip=\fR\fIskip\fR\fR
.ad
.RS 18n
Skip \fIskip\fR characters or lines from each file before copying.
.RE

.sp
.ne 2
.na
\fB\fB-v\fR\fR
.ad
.br
.na
\fB\fB--verbose\fR\fR
.ad
.RS 18n
Always output filename headers.
.RE

.SH OPERANDS
The following operand is supported:
.sp
.ne 2
.na
\fB\fB\fIfilename\fR\fR\fR
.ad
.RS 12n
A path name of an input file. If no \fIfile\fR operands are specified, the
standard input is used.
.RE

.SH USAGE
See \fBlargefile\fR(7) for the description of the behavior of \fBhead\fR when
encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
.SH EXAMPLES
\fBExample 1 \fRWriting the First Ten Lines of All Files
.sp
.LP
The following example writes the first ten lines of all files, except those
with a leading period, in the directory:

.sp
.in +2
.nf
example% \fBhead *\fR
.fi
.in -2
.sp

.SH ENVIRONMENT VARIABLES
See \fBenviron\fR(7) for descriptions of the following environment variables
that affect the execution of \fBhead\fR: \fBLANG\fR, \fBLC_ALL\fR,
\fBLC_CTYPE\fR, \fBLC_MESSAGES\fR, and \fBNLSPATH\fR.
.SH EXIT STATUS
The following exit values are returned:
.sp
.ne 2
.na
\fB\fB0\fR\fR
.ad
.RS 6n
Successful completion.
.RE

.sp
.ne 2
.na
\fB\fB>0\fR\fR
.ad
.RS 6n
An error occurred.
.RE

.SH ATTRIBUTES
See \fBattributes\fR(7) for descriptions of the following attributes:
.SS "/usr/bin/head"

.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
CSI	Enabled
_
Interface Stability	Committed
_
Standard	See \fBstandards\fR(7).
.TE

.SS "ksh93"

.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
Interface Stability	See below.
.TE

.sp
.LP
The \fBksh93\fR built-in binding to \fB/bin\fR and \fB/usr/bin\fR is Volatile.
The built-in interfaces are Uncommitted.
.SH SEE ALSO
.BR cat (1),
.BR ksh93 (1),
.BR more (1),
.BR pg (1),
.BR tail (1),
.BR attributes (7),
.BR environ (7),
.BR largefile (7),
.BR standards (7)
